function EchartsClass(initComplete)
{
    var _this = this; //设置当前函数的全局对象
    var scatterMapChart = echarts.init(document.getElementById('scatterMap'));// 初始化echarts散点图对象为mapChart
    var heatMapChart = echarts.init(document.getElementById('heatMap'));// 初始化echarts热力图对象为mapChart
    var renderMapChart = echarts.init(document.getElementById('renderMap'));// 初始化echarts渲染图对象为mapChart

    _this.builtinMapOption = new Object();// 初始化Echart内置地图所需要的option对象
    _this.scatterMapOption = new Object();// 初始散点地图所需要的option对象
    _this.heatMapOption = new Object();// 初始热力地图所需要的option对象
    _this.renderMapOption = new Object();// 初始渲染地图所需要的option对象
    /*
     * 初始化Echart内置地图所需要的option配置属性
     */
    jQuery.ajax(
    {
        type: "GET",
        url: "../config/china_map.json",
        dataType: "JSON",
        async : true,
        success: function (option)
        {
            _this.builtinMapOption = option;
            initComplete();
        },
    });

    /*
     * 初始化散点图所需要的option配置属性
     */
    jQuery.ajax(
    {
        type: "GET",
        url: "../config/scatter_map.json",
        dataType: "JSON",
        async : true,
        success: function (option)
        {
            _this.scatterMapOption = option;
            initComplete();
        },
    });

    /*
     * 初始化热力图所需要的option配置属性
     */
    jQuery.ajax(
    {
        type: "GET",
        url: "../config/heat_map.json",
        dataType: "JSON",
        async : true,
        success: function (option)
        {
            _this.heatMapOption = option;
            initComplete();
        },
    });

    /*
     * 初始化渲染图所需要的option配置属性
     */
    jQuery.ajax(
    {
        type: "GET",
        url: "../config/interval_render_map.json",
        dataType: "JSON",
        async : true,
        success: function (option)
        {
            _this.renderMapOption = option;
            initComplete();
        },
    });

     /*
      * 初始化散点图业务数据
      */
    _this.loadScatterMapBusinessData = function(url,queryBo,mapObj)
    {
        jQuery.ajax(
        {
            type : "POST",
            cache : false,
            dataType : "JSON",
            url : url,
            async : true,
            data :
                {
                    "queryBo" : JSON.stringify(queryBo)
                },
            success : function(result)
            {
                if (result != null && result.hasData)
                {
                    var businessData = result.data;
                    // 加载地图
                    loadScatterMap(mapObj,businessData);
                }
            },
        });
    };

    /*
     * 初始化热力图业务数据
     */
    _this.loadHeatMapBusinessData = function(url,queryBo,mapObj)
    {
        jQuery.ajax(
        {
            type : "POST",
            cache : false,
            dataType : "JSON",
            url : url,
            async : true,
            data :
                {
                    "queryBo" : JSON.stringify(queryBo)
                },
            success : function(result)
            {
                if (result != null && result.hasData)
                {
                    var businessData = result.data;
                    // 加载地图
                    loadHeatMapMap(mapObj,businessData);
                }
            },
        });
    };

    /*
     * 初始化渲染图业务数据
     */
    _this.loadRenderMapBusinessData = function(url,queryBo,mapObj)
    {
        jQuery.ajax(
            {
                type : "POST",
                cache : false,
                dataType : "JSON",
                url : url,
                async : true,
                data :
                    {
                        "queryBo" : JSON.stringify(queryBo)
                    },
                success : function(result)
                {
                    if (result != null && result.hasData)
                    {
                        var businessData = result.data;
                        // 加载地图
                        loadRenderMapMap(mapObj,businessData);
                    }
                },
            });
    };

     /*
      * 读取geo地图数据并注入echarts api
      */
    _this.loadScatterMap = function(mapObj,businessData)
    {
        // 读取geo地图数据
        $.get(mapObj.url, function (json)
        {
            echarts.registerMap(mapObj.id, json); // 注册地图
            scatterMapOption.geo.map = mapObj.id; // 设置geo坐标系地图Id
            scatterMapOption.title.text = mapObj.text;// 设置地图标题
            scatterMapOption.geo.zoom = mapObj.zoom; // 设置地图缩放等级
            scatterMapOption.geo.center = mapObj.center;// 设置地图中心点
            scatterMapOption.visualMap = mapObj.visualMap;// 由于此处不需要值域渐变，所以设置为空
            scatterMapOption.legend.x = mapObj.x;//图例x轴位置 左、中、右英文
            scatterMapOption.legend.y = mapObj.y;//图例y轴位置 上、中、下英文
            /*
             * 系列一数据和图标设置
             */
            scatterMapOption.series[0].type = mapObj.type;//自定义图标类型，此处可以设置scatter、effectScatter。
            scatterMapOption.series[0].symbol = mapObj.symbol;//自定义点位图标。
            scatterMapOption.series[0].symbolSize = mapObj.symbolSize;// 设置图标大小,此处可以是数字或者数组
            scatterMapOption.tooltip.formatter = mapObj.formatter;// 设置内容展示
            scatterMapOption.series[0].data = businessData[0]; // 设置业务数据
            /*
             * 系列三数据和图标设置
             */
            mapOption.series[1].type = mapObj.type1;//自定义图标类型，此处可以设置scatter、effectScatter。
            mapOption.series[1].symbol = mapObj.symbol1;//自定义点位图标。
            mapOption.series[1].symbolSize = mapObj.symbolSize1;// 设置图标大小,此处可以是数字或者数组
            mapOption.tooltip.formatter = mapObj.formatter;// 设置内容展示
            mapOption.series[1].data = businessData[1]; // 设置业务数据
            /*
             * 系列三数据和图标设置
             */
            mapOption.series[2].type = mapObj.type2;//自定义图标类型，此处可以设置scatter、effectScatter。
            mapOption.series[2].symbol = mapObj.symbol2;//自定义点位图标。
            mapOption.series[2].symbolSize = mapObj.symbolSize2;// 设置图标大小,此处可以是数字或者数组
            mapOption.tooltip.formatter = mapObj.formatter;// 设置内容展示
            mapOption.series[2].data = businessData[2]; // 设置业务数据

            scatterMapChart.setOption(scatterMapOption);// 把加工好的mapOption注入echarts API。
        });
    };

    /*
     * 读取geo地图数据并注入echarts api
     */
    _this.loadHeatMapMap = function(mapObj,businessData)
    {
        // 读取geo地图数据
        $.get(mapObj.url, function (json)
        {
            echarts.registerMap(mapObj.id, json); // 注册地图
            heatMapOption.geo.map = mapObj.id; // 设置geo坐标系地图Id
            heatMapOption.title.text = mapObj.text;// 设置地图标题
            heatMapOption.geo.zoom = mapObj.zoom; // 设置地图缩放等级
            heatMapOption.geo.center = mapObj.center;// 设置地图中心点
            heatMapOption.visualMap = mapObj.visualMap;// 由于此处不需要值域渐变，所以设置为空
            heatMapOption.legend.x = mapObj.x;//图例x轴位置 左、中、右英文
            heatMapOption.legend.y = mapObj.y;//图例y轴位置 上、中、下英文
            /*
             * 系列一数据和图标设置
             */
            heatMapOption.series[0].type = "heatmap";//自定义图标类型，此处可以设置scatter、effectScatter。
            heatMapOption.series[0].data = businessData[0]; // 设置业务数据

            heatMapChart.setOption(heatMapOption);// 把加工好的mapOption注入echarts API。
        });
    };

    /*
     * 读取geo地图数据并注入echarts api
     */
    _this.loadRenderMapMap = function(mapObj,businessData)
    {
        // 读取geo地图数据
        $.get(mapObj.url, function (json)
        {
            echarts.registerMap(mapObj.id, json); // 注册地图
            /*
             * 系列数据和图标设置
             */
            renderMapOption.title.text = mapObj.text;// 设置地图标题
            renderMapOption.series[0].mapType = mapObj.id; // 设置geo坐标系地图Id
            renderMapOption.series[0].zoom = mapObj.zoom; // 设置地图缩放等级
            renderMapOption.series[0].center = mapObj.center;// 设置地图中心点
            renderMapOption.series[0].data = businessData[0]; // 设置业务数据

            renderMapChart.setOption(renderMapOption);// 把加工好的mapOption注入echarts API。
        });
    };

}